home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / 3DTOSHI2.ZIP / mpgfx / source / gfxfiles.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-15  |  2.9 KB  |  140 lines

  1.  
  2. // gfxfiles.cpp
  3. //
  4. // Copyright (c) 1995 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. #include "stdgfx.h"
  7. #include "gfxfiles.h"
  8.  
  9. FILESYSTEM File;
  10.  
  11. FILESYSTEM::FILESYSTEM () : DCIClass ()
  12.   {
  13.   } // End of Constructor for FILESYSTEM
  14.  
  15. FILESYSTEM::~FILESYSTEM ()
  16.   {
  17.   } // End of Destructor for FILESYSTEM
  18.  
  19. BOOLEAN FILESYSTEM::Init ()
  20.   {
  21.     return TRUE;
  22.   } // End of Init for FILESYSTEM
  23.  
  24. VOID FILESYSTEM::DeInit ()
  25.   {
  26.   } // End of DeInit for FILESYSTEM
  27.  
  28. FILEHANDLE FILESYSTEM::Open ( STRING FileName, LONG Mode )
  29.   {
  30.     CHAR ModeStr[16];
  31.     LONG Pos;
  32.  
  33.     memset ( ModeStr, 0, 16 );
  34.  
  35.     Pos = 0;
  36.     LONG Open;
  37.     Open = OPEN_READ;
  38.     if (Open==0)
  39.       {
  40.         if ((Mode&0x01)==0)
  41.           ModeStr[Pos++] = 'r';
  42.       } // End if
  43.     else
  44.       {
  45.         if (Mode&OPEN_READ)
  46.           ModeStr[Pos++] = 'r';
  47.       } // End else
  48.  
  49.     if (Mode&OPEN_WRITE)
  50.       ModeStr[Pos++] = 'w';
  51.     if (Mode&OPEN_RDWR)
  52.       {
  53.             ModeStr[Pos++] = 'w';
  54.             ModeStr[Pos++] = '+';
  55.       } // End if
  56.  
  57.     if (Mode&OPEN_APPEND)
  58.       ModeStr[Pos++] = 'a';
  59.  
  60.     #ifndef __FORUNIX__
  61.       if (Mode&OPEN_TEXT)
  62.         ModeStr[Pos++] = 't';
  63.       if (Mode&OPEN_BINARY)
  64.         ModeStr[Pos++] = 'b';
  65.     #endif 
  66.          if (Pos)
  67.       {}
  68.     return fopen ( FileName, ModeStr );
  69.   } // End of Open for FILESYSTEM
  70.  
  71. VOID FILESYSTEM::Close ( FILEHANDLE f )
  72.   {
  73.     fclose ( f );
  74.   } // End of Close for FILEHANDLE
  75.  
  76. LONG FILESYSTEM::Seek ( FILEHANDLE f, LONG Offset, LONG From )
  77.   {
  78.     return fseek ( f, Offset, From );
  79.   } // End of Seek for FILESYSTEM
  80.  
  81. BOOLEAN FILESYSTEM::Read ( FILEHANDLE f, VOID* Buffer, LONG Size )
  82.   {
  83.     if (fread(Buffer,Size,1,f)!=1)
  84.       {
  85.         Error.SetError ( ERR_FILEIO );
  86.         return FAILURE;
  87.       } // End if
  88.     return SUCCESS;
  89.   } // End of Read for FILESYSTEM
  90.  
  91. BOOLEAN FILESYSTEM::Write ( FILEHANDLE f, VOID* Buffer, LONG Size )
  92.   {
  93.     if (fwrite(Buffer,Size,1,f)!=1)
  94.       {
  95.         Error.SetError ( ERR_FILEIO );
  96.         return FAILURE;
  97.       } // End if
  98.     return SUCCESS;
  99.   } // End of Write for FILESYSTEM
  100.  
  101. INT FILESYSTEM::GetCh ( FILEHANDLE f )
  102.   {
  103.     INT Ch;
  104.     Ch = fgetc ( f );
  105.     return Ch;
  106.   } // End of GetCh for FILESYSTEM
  107.  
  108. VOID FILESYSTEM::PutCh ( FILEHANDLE f, SHORT Ch )
  109.   {
  110.     fputc ( Ch, f );
  111.   } // End of PutCh for FILESYSTEM
  112.  
  113. LONG FILESYSTEM::GetPos ( FILEHANDLE f )
  114.   {
  115.     #ifdef __FORVISUAL__
  116.       fpos_t Pos;
  117.     #else
  118.       LONG Pos;
  119.     #endif
  120.  
  121.     #ifdef __FORUNIX__
  122.       return ftell ( f );
  123.     #else
  124.       fgetpos ( f, &Pos );
  125.       return (LONG)Pos;
  126.     #endif
  127.   } // End of GetPos for FILESYSTEM
  128.  
  129. LONG FILESYSTEM::GetSize ( FILEHANDLE f )
  130.   {
  131.     LONG Size;
  132.     LONG CurPos;
  133.     CurPos = GetPos ( f );
  134.     Seek ( f, 0, FROM_END );
  135.     Size = GetPos ( f );
  136.     Seek ( f, CurPos, FROM_BEGIN );
  137.     return Size;
  138.   } // End of GetSize for FILESYSTEM
  139.  
  140.